//操作类型标记
var opFlag 				= $('#opFlag').val();
//文本编辑区域
var textMsgContent 		= $('#textMsgContent');
//图片编辑区域
var imageMsgContent 	= $('#imageMsgContent');
//图文编辑区域
var imageTextMsgContent = $('#imageTextMsgContent');

var opFlagValue = {
	add: "add",
	edit: "edit"
}
//消息类型
var msgTypeValue = {
	text: "1",
	image: "2",
	imageText: "3"
}

$(function() {
	$('input[type="radio"]').iCheck({radioClass: 'iradio_square-green'});
	$('input[type="checkbox"]').iCheck({checkboxClass: 'icheckbox_square-green'});
	//消息类型
	sys.selectpicker({
		id 		: 'msgType', // select的id
		url 	: rootPath + "/dict/listKeyMapEntites", // 请求数据的远程地址
		param 	: { keyType : 'wxMsgType' }, // 过滤参数
		defaultValue: $('#msgType').attr("data-value") || msgTypeValue.imageText,
		valueField 	: 'keyValue',
		textField 	: 'keyIntro',
		width 		: '200px'
	});
	//消息类型改变事件
	$('#msgType').on('changed.bs.select', function (e) {
		var value = $(this).selectpicker('val');
		showMsgContent(value);
		setGroupValidate(value);
	});
	
	//图文消息点击链接方式
	$('input[name="linkType"]').on('ifChecked', function(event){ 
		$("#linkUrlContainer").hide();
		$("#contentContainer").hide();
		var value = $(this).val();
		if (value == '1') {
			$("#contentContainer").show();
		} else if (value == '2') {
			$("#linkUrlContainer").show();
		}
		
		var $_linkType = $(".tw_box").find(".current").find("._linkType");
		$_linkType.val($(this).val());
	}); 
	
	//UEditor 初始化
	editor = UE.getEditor('tmpContent', {
		//这里可以选择自己需要的工具按钮名称,此处仅选择如下五个
		//focus时自动清空初始化时的内容
		autoClearinitialContent : false,
		//关闭字数统计
		wordCount : false,
		imageUrlPrefix : imgRootURL,
		//默认的编辑区域高度
		initialFrameWidth:1060,
		//默认的编辑区域高度
		initialFrameHeight:500,
		//关闭elementPath
		elementPathEnabled:false
	});
	UE.Editor.prototype._bkGetActionUrl = UE.Editor.prototype.getActionUrl;
	UE.Editor.prototype.getActionUrl = function(action) {
		 if (action == 'uploadimage' || action == 'uploadscrawl' || action == 'uploadimage') {
			 return rootPath + '/product/multiFileUeditorUpload.do';
		 } else {
			 return this._bkGetActionUrl.call(this, action);
		 }
	} 
	editor.ready(function(){
		editor.fireEvent("contentChange");
		if($('#msgType').attr("data-value") == msgTypeValue.imageText) {
			setArticle();
		}
	})
	var loadFireEvent = 0;
	editor.addListener("contentChange", function() {
		//console.log('内容改变:' + editor.getContent());
		if (loadFireEvent != 0) {
			setTimeout(function(){
				var c = editor.getContent();
				var $_content = $(".tw_box").find(".current").find("._content");
				$_content.val(c);
			}, 1500);
		}
		loadFireEvent++;
	});
	
	// 提交按钮
	$("#btn_save").click(function() { 
		$(this).hide();
		layer.tips("正在提交中...");
		if ($("#msgType").val() == msgTypeValue.imageText) {
			//校验封面文章
			var thumbId = $(".tw_box1").find("._id").val();
			var thumbTitle = $(".tw_box1").find("._msgTitle").val();
			var thumbImageUrl = $(".tw_box1").find("._imageUrl").val();
			var thumbDigest = $(".tw_box1").find("._digest").val();
			var thumbLinkType = $(".tw_box1").find("._linkType").val(); //$('input[name="linkType"]:checked').val();
			var thumbContent = $(".tw_box1").find("._content").val();
			var thumbLinkUrl = $(".tw_box1").find("._linkUrl").val();
			//校验子文章
			$(".tw_box21").each(function() {
				var childId = $(this).find("._id").val();
				var childTitle = $(this).find("._msgTitle").val();
				var childImageUrl = $(this).find("._imageUrl").val();
				var childContent = $(this).find("._content").val();
				var childLinkType = $(".tw_box1").find("._linkType").val();
				var childLinkUrl = $(this).find("._linkUrl").val();
				if (!childTitle || !childImageUrl) {
					show("请讲信息填写完整");
					$(this).show();
					return false;
				}
				if (childLinkType == "2" && !childLinkUrl) {
					show("请讲信息填写完整");
					$(this).show();
					return false;
				}
			})
			
			var articles = [];
			//获取封面文章内容
			articles.push({
				id: thumbId,
				title: thumbTitle,
				author: "",
				thumbImageUrl: thumbImageUrl,
				digest: thumbDigest,
				content: thumbLinkType == "1" ? thumbContent : null,
				linkType: thumbLinkType,
				linkUrl: thumbLinkType == "2" ? thumbLinkUrl : null,
				sort: 1
			});
			//获取子文章内容
			$(".tw_box21").each(function(index, obj){
				if (index < 7) {
					var cLinkType = $(obj).find("._linkType").val();
					articles.push({
						id: $(obj).find("._id").val(),
						title: $(obj).find("._msgTitle").val(),
						author: "",
						thumbImageUrl: $(obj).find("._imageUrl").val(),
						digest: $(obj).find("._digest").val(),
						content: cLinkType == "1" ? $(obj).find("._content").val() : null,
						linkType: cLinkType,
						linkUrl: cLinkType == "2" ? $(obj).find("._linkUrl").val() : null,
						sort: index + 2
					});
				}
			})
			$.ajax({
				type: "POST",
				url: rootPath + "/wechatMsgConfig/saveOrUpdateWechatMsgConfig",
				data: {
					id: $("#id").val(),
					msgTitle: articles[0].title,
					msgType: msgTypeValue.imageText,
					articles: JSON.stringify(articles)
				},
				dataType: "json",
				success: function(data) {
					if (data.resultCode == '1') {
						window.location.href = rootPath + "/wechatMsgConfig/toListWechatMsgConfigPage";
					} else { 
						showErr("保存失败!");
					}
				}
			})
		} else {
			$("#wechatMsgConfigForm").submit();
		}
	});
	
	//返回按钮
	$("#btn_back").click(function() {
		window.location.href = rootPath + "/wechatMsgConfig/toListWechatMsgConfigPage";
	});
	
	//校验表单
	checkForm();
	
	//初始化新增页面时默认显示图文
	var currentMsgType = $('#msgType').attr("data-value");
	showMsgContent(currentMsgType || msgTypeValue.imageText);
	
	//初始化分组验证规则
	setGroupValidate(currentMsgType || msgTypeValue.imageText);
	
	//文章标题即时输入事件
	$('#msgTitle').bind('input propertychange', function(){
		var $title = $(".tw_box").find(".current").find(".twTitle");
		var $_title = $(".tw_box").find(".current").find("._msgTitle");
		$title.html($(this).val());
		$_title.val($(this).val());
	});
	
	//摘要即时输入事件
	$('#digest').bind('input propertychange', function(){
		var $_digest = $(".tw_box").find(".current").find("._digest");
		$_digest.val($(this).val());
	});
	
	//链接路径实时输入事件
	$('#linkUrl').bind('input propertychange', function(){
		var $_linkUrl = $(".tw_box").find(".current").find("._linkUrl");
		$_linkUrl.val($(this).val());
	});
	
	$("#btbAddArticle").on("click", function(){
		if ($(".tw_box21").length >= 7) {
			show("你最多只可以加入8条图文消息");
			return false;
		}
		$(".tw_box1").removeClass("current").css({"border": "1px solid #eee"});
		$(".tw_box21").removeClass("current");
		var strHtml = "";
		strHtml += '<li>';
		strHtml += '<div class="tw_box21 current">';
		strHtml += '	<div class="item-info">';
		strHtml += '		<p class="twTitle">标题</p>';
		strHtml += '	</div>';
		strHtml += '	<div class="pic">';
		strHtml += '		<img class="tw_image" src="'+rootPath+'/statics/images/article_default_1.jpg" />';
		strHtml += '	</div>';
		strHtml += '	<div class="other-info">';
		strHtml += '		<div class="px_part">';
		strHtml += '			<a href="javascript:;" class="a1" onclick="sortArticle(this, \'up\')"></a>';
		strHtml += '			<a href="javascript:;" class="a2" onclick="sortArticle(this, \'down\')"></a>';
		strHtml += '		</div>';
		strHtml += '		<div class="del_part">';
		strHtml += '			<a href="#" onclick="removeTwBox(this)"></a>';
		strHtml += '		</div>';
		strHtml += '	</div>';
		strHtml += '	<input type="hidden" class="_id" />';
		strHtml += '	<input type="hidden" class="_msgTitle" />';
		strHtml += '	<input type="hidden" class="_imageUrl" />';
		strHtml += '	<input type="hidden" class="_digest" />';
		strHtml += '	<input type="hidden" class="_content" />';
		strHtml += '	<input type="hidden" class="_linkType" value="1" />';
		strHtml += '	<input type="hidden" class="_linkUrl" />';
		strHtml += '</div>';
		strHtml += '</li>';
		$(".tw_box2 ul").append(strHtml);
		$(".tw_box21").unbind("click", boxCurrentEvent).bind("click", boxCurrentEvent);
		
		setArticle();
	})
	//封面文章点击事件
	$(".tw_box1").bind("click", function(){
		$(".tw_box1").removeClass("current").css({"border": "1px solid #eee"});
		$(".tw_box21").removeClass("current");
		$(this).addClass("current").css({"border": "2px solid #42b548"});
		setArticle();
	})
	
	//初始化显示图文列表
	$(".tw_box21").unbind("click", boxCurrentEvent).bind("click", boxCurrentEvent);
});

//文章排序
function sortArticle(_this, direction){
	var current = $(_this).parents(".tw_box21");
	if (direction == "up") {
		var last = current.closest("li").prev().find(".tw_box21");
		if (last.length != 0) {
			var tempBox = current.html();
			current.html(last.html());
			last.html(tempBox);
		} else {
			var thumb = $(".tw_box1");
			var thumbId = thumb.find("._id").val();
			var thumbTitle = thumb.find("._msgTitle").val();
			var thumbImageUrl = thumb.find("._imageUrl").val();
			var thumbDigest = thumb.find("._digest").val();
			var thumbContent = thumb.find("._content").val();
			var thumbLinkType = thumb.find("._linkType").val();
			var thumbLinkUrl = thumb.find("._linkUrl").val();

			var currentId = current.find("._id").val();
			var currentTitle = current.find("._msgTitle").val();
			var currentImageUrl = current.find("._imageUrl").val();
			var currentDigest = current.find("._digest").val();
			var currentContent = current.find("._content").val();
			var currentLinkType = thumb.find("._currentLinkType").val();
			var currentLinkUrl = current.find("._linkUrl").val();

			thumb.find("._id").val(currentId);
			thumb.find("._msgTitle").val(currentTitle);
			thumb.find("._imageUrl").val(currentImageUrl);
			thumb.find("._digest").val(currentDigest);
			thumb.find("._content").val(currentContent);
			thumb.find("._linkType").val(currentLinkType);
			thumb.find("._linkUrl").val(currentLinkUrl);

			current.find("._id").val(thumbId);
			current.find("._msgTitle").val(thumbTitle);
			current.find("._imageUrl").val(thumbImageUrl);
			current.find("._digest").val(thumbDigest);
			current.find("._content").val(thumbContent);
			current.find("._linkType").val(thumbLinkType);
			current.find("._linkUrl").val(thumbLinkUrl);
			
			var tmpTitle = thumb.find(".twTitle").html();
			var tmpImage = thumb.find(".tw_image").attr("src");
			thumb.find(".twTitle").html(current.find(".twTitle").html());
			thumb.find(".tw_image").attr("src", current.find(".tw_image").attr("src"));
			current.find(".twTitle").html(tmpTitle);
			current.find(".tw_image").attr("src", tmpImage);
		}
	} else if (direction == "down") { 
		var next = current.closest("li").next().find(".tw_box21"); 
		if (next.length != 0) {
			var tempBox = current.html();
			current.html(next.html());
			next.html(tempBox);
		} 
		if (current.length == 0) {
			var thumb = $(".tw_box1"); 
			var thumbId = thumb.find("._id").val();
			var thumbTitle = thumb.find("._msgTitle").val();
			var thumbImageUrl = thumb.find("._imageUrl").val();
			var thumbDigest = thumb.find("._digest").val();
			var thumbContent = thumb.find("._content").val();
			var thumbLinkType = thumb.find("._linkType").val();
			var thumbLinkUrl = thumb.find("._linkUrl").val();
			
			var firstChild = $(".tw_box2 ul li:eq(0)").find(".tw_box21");
			if (firstChild.length != 0) {
				var fcId = firstChild.find("._id").val();
				var fcTitle = firstChild.find("._msgTitle").val();
				var fcImageUrl = firstChild.find("._imageUrl").val();
				var fcDigest = firstChild.find("._digest").val();
				var fcContent = firstChild.find("._content").val();
				var fcLinkType = firstChild.find("._linkType").val();
				var fcLinkUrl = firstChild.find("._linkUrl").val();

				thumb.find("._id").val(fcId);
				thumb.find("._msgTitle").val(fcTitle);
				thumb.find("._imageUrl").val(fcImageUrl);
				thumb.find("._digest").val(fcDigest);
				thumb.find("._content").val(fcContent);
				thumb.find("._linkType").val(fcLinkType);
				thumb.find("._linkUrl").val(fcLinkUrl);

				firstChild.find("._id").val(thumbId);
				firstChild.find("._msgTitle").val(thumbTitle);
				firstChild.find("._imageUrl").val(thumbImageUrl);
				firstChild.find("._digest").val(thumbDigest);
				firstChild.find("._content").val(thumbContent);
				firstChild.find("._linkType").val(thumbLinkType);
				firstChild.find("._linkUrl").val(thumbLinkUrl);
				
				var tmpTitle = thumb.find(".twTitle").html();
				var tmpImage = thumb.find(".tw_image").attr("src");
				thumb.find(".twTitle").html(firstChild.find(".twTitle").html());
				thumb.find(".tw_image").attr("src", firstChild.find(".tw_image").attr("src"));
				firstChild.find(".twTitle").html(tmpTitle);
				firstChild.find(".tw_image").attr("src", tmpImage);
			}
		}
	}
}

//删除子文章
function removeTwBox(_this) {
	showConfirm("确定要删除吗?", function(){
		$(_this).parents("li").remove();
		$(".tw_box1").click(); //默认回到封面文章
	})
}
//选中子文章
function boxCurrentEvent(){
	$(".tw_box1").removeClass("current").css({"border": "1px solid #eee"});
	$(".tw_box21").removeClass("current");
	$(this).addClass("current");
	setArticle();
}

function setArticle(){
	var $current = $(".tw_box").find(".current");
	//标题
	var $_title = $current.find("._msgTitle");
	$('#msgTitle').val($_title.val());
	//封面图片
	var $_image = $current.find("._imageUrl");
	if (!$_image.val()) {
		$("a[class='icon_close']").click();
	} else {
		createImage($(".image_container"), "image", $_image.val());
	}
	//设置封面图片尺寸提示
	if ($current.attr("class").indexOf("tw_box1") > -1) { //如果是首页
		$(".pictips").text("封面图片建议尺寸：900像素 * 500像素");
	} else { //其他图文
		$(".pictips").text("封面图片建议尺寸：200像素 * 200像素");
	}
	
	$("#imageUrl").val($_image.val());
	//摘要
	var $_digest = $current.find("._digest");
	$('#digest').val($_digest.val());
	//图文
	var $_content = $current.find("._content");
	editor.setContent($_content.val());
	//链接类型
	var _linkType = $current.find("._linkType");
	var radioIndex = 0;
	if (_linkType.val() == "2") {
		radioIndex = 1;
	}
	$('input[name="linkType"]:eq('+radioIndex+')').iCheck('check');
	//链接
	var $_linkUrl = $current.find("._linkUrl");  
	$('#linkUrl').val($_linkUrl.val());
}

//******************************************************根据不通的类型显示不同的内容BEGIN**********************************************************//
/**
 * 根据不同的消息类型显示不通的编辑内容 
 */
function showMsgContent(msgType) { 
	textMsgContent.hide();
	imageMsgContent.hide();
	imageTextMsgContent.hide();
	if (msgType == msgTypeValue.text) {
		textMsgContent.show();
	} else if (msgType == msgTypeValue.image) {
		imageMsgContent.show();
	} else if (msgType == msgTypeValue.imageText) {
		imageMsgContent.show();
		imageTextMsgContent.show();
	}
	
	if (msgType == msgTypeValue.imageText) {
		$("#leftContainer").show();
		$("#rightContainer").removeClass().addClass("col-md-10 col-sm-10");
	} else {
		$("#leftContainer").hide();
		$("#rightContainer").removeClass().addClass("col-md-12 col-sm-12");
	}
}

//******************************************************根据不通的类型显示不同的内容END**********************************************************//


//*****************************************************************分组验证BEGIN*************************************************************//
/**
 * 分组验证
 */
function setGroupValidate(msgType){
	$('#textMessage').rules("remove");
	$('#imageUrl').rules("remove");
	
	if (msgType == msgTypeValue.text) {
		$('#textMessage').rules("add", { required : true, maxlength : 200, messages : { required : '请填写消息标题', maxlength : '消息标题最多200个字符' }});
	} else if (msgType == msgTypeValue.image) {
		$('#imageUrl').rules("add", { required : true, messages : { required : '请上传图片'}});
	} else if (msgType == msgTypeValue.imageText) {
		setLinkTypeValidate();
	}
}
function setLinkTypeValidate(){
	$('#imageUrl').rules("remove");
	$('#imageUrl').rules("add", { required : true, messages : { required : '请上传图片'}});
}
//*****************************************************************分组验证END*******************************************************************//

/**
 * 校验表单 
 */
function checkForm(){
	$("#wechatMsgConfigForm").validate({
		rules : {
			msgTitle : {
				required : true
			},
		},
		messages : {
			msgTitle : {
				required : '请填写消息标题',
				maxlength : '消息标题最多200个字符'
			},
		},
		errorPlacement : function(error, element) { // 错误信息位置设置方法
			var tagName = $(element).is("select");
			if (!tagName) {
				error.insertAfter(element);
			} else {
				error.insertAfter(element.parent().next());
			}
		},
		submitHandler : function(form) {
			//将隐藏区域的数值清空
			var currentMsgType = $('#msgType').selectpicker('val');
			clearExcludeMsgTypeFormData(currentMsgType);
			//异步提交表单
			$(form).ajaxSubmit({
				type		: 'post',
				success		: function(json){ 
					if (json.resultCode == '1') {
						window.location.href = rootPath + "/wechatMsgConfig/toListWechatMsgConfigPage";
					} else { 
						showErr("保存失败!");
					}
				}
			}); 
		}
	});
}
/**
 * 清空指定消息类型外的表单数据 
 */
function clearExcludeMsgTypeFormData(excludeMsgType) {
	if (excludeMsgType == msgTypeValue.text) {
		clearMsgTypeFormData(msgTypeValue.image);
		clearMsgTypeFormData(msgTypeValue.imageText);
	} else if (excludeMsgType == msgTypeValue.image) {
		clearMsgTypeFormData(msgTypeValue.text);
		clearMsgTypeFormData(msgTypeValue.imageText);
	} else if (excludeMsgType == msgTypeValue.imageText) {
		clearMsgTypeFormData(msgTypeValue.text);
		clearMsgTypeFormData(msgTypeValue.image);
	}
}
/**
 * 清空指定消息类型的表单数据 
 */
function clearMsgTypeFormData(msgType) {
	if (msgType == msgTypeValue.text) {
		$('#textMessage').val("");
	} else if (msgType == msgTypeValue.image) {
		if ($('#msgType').selectpicker('val') == msgTypeValue.text) {
			$('#imageUrl').val("");
		}
	} else if (msgType == msgTypeValue.imageText) {
		if ($('#msgType').selectpicker('val') == msgTypeValue.text) {
			$('#imageUrl').val("");
		}
	}
}

//************************************************上传图片所需的函数BEGIN********************************************************//
/**
 * 通过ajax提交图片
 */
function ajaxFileUpload(obj, tag) {
	var image_container = $(obj).parents(".image_container");
	var lis = image_container.find("li");
	if (lis.length > 1) {
		msg("只能上传一张照片");
		return false;
	}
	var id = $(obj).attr("id");
	//loading层
	var index = layer.msg('上传中...', {
	  icon: 16
	  ,shade: 0.01,
	  time: 0
	});
	var check = imageCheck(obj);
	if (!check) {
		return;
	}
	$.ajaxFileUpload({
		url : rootPath + '/uploadFile/uploadOneFile',
		secureuri : false,
		fileElementId : id, // input标签id属性值
		dataType : 'json',
		success : function(data, status) {
			layer.close(index);
			if (data.code == 1) {
				createImage(image_container, tag, data.filePath);
			} else {
				msg("上传失败");
			}
		},
		error : function(data, status, e) {
			layer.close(index);
			msg("系统异常");
		}
	});
}

function createImage(image_container, tag, filePath) {
	image_container.next().val(filePath);
	$(".tw_box").find(".current").find(".tw_image").attr("src", imgRootURL + filePath);
	$(".tw_box").find(".current").find("._imageUrl").val(filePath);
	var oldLi = 
			"<li>"
			+ "	<div class=\"pic1\">"
			+ "		<img src=\"" + rootPath + "/statics/images/upload_pic1.png\" />"
			+ "		<input id=\"upload_image\" type=\"file\" name=\"upload_image\" onchange=\"ajaxFileUpload(this,'"+tag+"')\" />"
			+ "</div>" 
			+ "</li>";
	var li = "<li>" 
			+ " <div class=\"pic1\">" 
			+ "		<a rel='"+tag+"' href='" + imgRootURL + filePath + "'>" 
			+ "			<img id=\"thumbImage\" src=\"" + imgRootURL + filePath + "?x-oss-process=image/resize,h_60/format,png\" />"
			+ "		</a>"
			+ "		<a href=\"javascript:void(0)\" class=\"icon_close\"></a>"
			+ " </div>" 
			+ "</li>";
	image_container.empty().append(li);
	image_container.find("a[class='icon_close']").each(function() {
		//左上角删除按钮点击事件
		$(this).click(function() {
			$(this).closest("li").remove();
			image_container.append(oldLi);
			image_container.next().val("");
			$(".tw_box").find(".current").find("._imageUrl").val("");
		});
	});
	//加载大图查看
	initFancyBoxImg(tag);
}

//检查图片格式及大小
function imageCheck(obj){
	var id = $(obj).attr("id");
	var filePath = $("#"+id).val();
	//检查后缀
	var ext = filePath.substring(filePath.lastIndexOf("."), filePath.length).toUpperCase();
	if (ext != ".BMP" && ext != ".PNG" && ext != ".GIF" && ext != ".JPG" && ext != ".JPEG") {
		layer.msg('只能上传图片',{time:500});
		return false;
	}
	var file_size = 0;
	if (false || !!document.documentMode) {
		var img = new Image();
		img.src = filepath;
		while (true) {
			if (img.fileSize > 0) {
				if (img.fileSize > 5 * 1024 * 1024) {
					layer.msg('图片不能大于5MB',{time:1000});
					return false;
				}
				break;
			}
		}
	} else {
		file_size = obj.files[0].size;
		var size = file_size / 1024;
		if (size > 5120) {
			layer.msg('图片不能大于5MB',{time:1000});
			return false;
		}
	}
	return true;
}
/**
 * 关闭图片 
 */ 
function clearImage(_this, tag) {
	var id = "upload_image";
	var oldLi = 
		"<li>"
		+ "	<div class=\"pic1\">"
		+ "		<img src=\"" + rootPath + "/statics/images/upload_pic1.png\" />"
		+ "		<input id=\""+id+"\" type=\"file\" name=\"upload_image\" onchange=\"ajaxFileUpload(this,'"+tag+"')\" />"
		+ "</div>" 
		+ "</li>";
	var image_container = $(_this).parents(".image_container");
	image_container.empty().append(oldLi);
	image_container.next().val("");
}
//************************************************上传图片所需的函数END*********************************************************//